// #include <iostream>
// #include <map>
// #include "pairings.h"
// int main(int argc, char *argv[])
// {
//   int A[] = {1,2,3};
//   int B[] = {4,5,6};
  
//   Pairings<int> m;
  
//   m.add_pair(&A[0], &B[0]);
//   m.add_pair(&A[0], &B[1]);
//   m.add_pair(&A[0], &B[2]);
//   m.add_pair(&A[1], &B[0]);
//   m.add_pair(&A[1], &B[1]);
//   m.add_pair(&A[2], &B[0]);
//   m.add_pair(&A[2], &B[1]);

//   std::map< int*, int*> i;
//   while(m.get_next_map(&i))
//     {
//       for(std::map<int*, int*>::iterator j = i.begin(); j != i.end(); j++)
//         std::cout << "[" << *(j->first) << "," << *(j->second) << "] ";    
//       std::cout << "\n";
//     }
//   return 0;
// }

// // ------------------------------------------------------------------------------
// // Output:
// // [1,6] [2,5] [3,4] 
// // [1,6] [2,4] [3,5]
// // ------------------------------------------------------------------------------
